$(document).ready(function(){
    laodTable();
    var btnElement = '#toobar .dis';
    btnJurisdiction(btnElement);//查询当前用户的按钮权限
    /*加载图标下拉框*/
    $('#picker,#updatepicker').fontIconPicker({
        source: fa_icons,
        searchSource: fa_icons,
        //useAttribute: true,
        theme: 'fip-bootstrap',
        //attributeName: 'data-icomoon',
        emptyIconValue: 'none',
    });

    /*新增表单验证*/
    $("#addSourceForm,#updateSourceForm").bootstrapValidator({
        message: 'This value is not valid',
        excluded: [':disabled', ':hidden'], //[':disabled', ':hidden', ':not(:visible)'] //设置隐藏组件可验证
        feedbackIcons: {
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            path: {
                trigger: "change", //针对赋值的文本框执行change事件
                validators: {
                    /*notEmpty: {
                        message: '请输入菜单地址'
                    },*/
                    regexp: {
                        regexp: /^[A-Za-z]+$/,
                        message: '请输入大小写字母'
                    }
                }
            },
            type:{
                trigger: "change", //针对赋值的文本框执行change事件
                validators: {
                    notEmpty: {
                        message: '请选择资源类型'
                    }
                }
            },
            menuName:{
                trigger: "change", //针对赋值的文本框执行change事件
                validators: {
                    notEmpty: {
                        message: '请输入菜单名称'
                    },
                    regexp: {
                        regexp: /^[\u4e00-\u9fa5]+$/,
                        message: '请输入中文'
                    }
                }
            },
            menuLevel:{
                trigger: "change", //针对赋值的文本框执行change事件
                validators: {
                    notEmpty: {
                        message: '请输入菜单级别'
                    },
                    regexp:{
                        regexp:/^(0|[1-9][0-9]*)$/,
                        message:"请输入非0的数字"
                    }
                }
            },
            sequence:{
                trigger: "change", //针对赋值的文本框执行change事件
                validators: {
                    notEmpty: {
                        message: '请输入菜单顺序'
                    },
                    regexp:{
                        regexp:/^(0|[1-9][0-9]*)$/,
                        message:"请输入非0的数字"
                    }
                }
            },
            isClick: {
                trigger: "change", //针对赋值的文本框执行change事件
                validators: {
                    notEmpty: {
                        message: '请选择是否可点击'
                    }
                }
            },
            /*icon: {
                trigger: "change", //针对赋值的文本框执行change事件
                validators: {
                    notEmpty: {
                        message: '请选择菜单图标'
                    }
                }
            },*/
            remark: {
                trigger: "change", //针对赋值的文本框执行change事件
                validators: {
                    regexp: {
                        regexp: /^.{0,50}$/,
                        message: '备注最多可输入50个字符'
                    }
                }
            }
        }
    });

});


/*初始化加载数据表格*/
function laodTable(){
    var $table = $('#sourceTable');
    $table.bootstrapTable({
        url:'../role/dyQuery',
        method: 'post',
        /*height: $(window).height(),*/
        striped: true,
        dataType:'json',
        contentType:"application/x-www-form-urlencoded; charset=UTF-8",
        cache: false,     // 不缓存
        /*pagination: true, //是否显示分页*/
        toolbar: '#toobar',//工具列
        singleSelect:true, //单选
       /* pageSize: 10,
        pageNumber: 1,     //初始化加载第一页，默认第一页
        pageList: [5, 10, 20, 30, 50], //可供选择的每页的行数（*）*/
        search: true,
        showRefresh: true,  //是否显示刷新按钮
        /*clickToSelect: true,  //是否启用点击选中行*/
        idField: 'id',
        columns: [
            {
                field: 'ck',
                title:'选择',
                checkbox: true
            },
            {
                field: 'menuName',
                title: '名称'
            },
            {
                field: 'path',
                title: '页面地址'/*,
                sortable: true,
                align: 'center'*/
            },
            {
                field: 'cof',
                title: '资源类型',
                formatter:cofType
            },
            {
                field: 'menuLevel',
                title: '级别'
            },

            {
                field: 'sequence',
                title: '是否可点击',
                formatter:isChk
            },
            {
                field: 'memuMethodList',
                title: '方法地址'
            },
            {
                field: 'remark',
                title: '备注'
            }
        ],
        treeShowField: 'menuName',
        parentIdField: 'parentId',
        onLoadSuccess: function(data) {
            $table.treegrid({
                initialState: 'collapsed',//收缩
                treeColumn: 1,//指明第几列数据改为树形
                /*expanderExpandedClass: 'icon-minus-sign',
                expanderCollapsedClass: 'icon-plus-sign',*/
                onChange: function() {
                    $table.bootstrapTable('resetWidth');
                }
            });
        }
    });
}

/*刷新表格*/
function refreshDetailTab() {
    $('#sourceTable').bootstrapTable('refresh');
}
/*资源类型转义*/
function cofType(value,row,index) {
    if(value==1){ //菜单
        return "<span class='label label-primary'>菜单</span>";
    }else{
        return "<span class='label label-info'>按钮</span>";
    }
}

/*是否可点击转义*/
function isChk(value){
    if(value==0){  //不可点击
        return "不可点击";
    }else if(value==1){
        return "可点击";
    }else{
        return "";
    }
}

/*新增按钮点击事件*/
function AddSource(){
    var rows = $("#sourceTable").bootstrapTable('getSelections');
    if(rows.length<1){
        layer.confirm('当前未选中父级菜单，将直接创建一级菜单？', {icon: 3, title:'提示'}, function(){
            layer.closeAll("dialog"); //疯狂模式，关闭所有层
            $("#addSourceDialog").modal("show");
        },function (index) {
                layer.closeAll("dialog"); //疯狂模式，关闭所有层
            }
        )
    }else{
        $("#addSourceDialog").modal("show");
        $("#addSourceForm input[name='parentId']").val(rows[0].id);
    }
}

/*新增重置按钮点击事件*/
function resetAddSource() {
    $("#addSourceForm").find(":input").not(":button,#parentId").val("");
    $("#type,#isClick").val("");
    $("#picker .selected-icon").empty(); //移除图标下的i元素
    $('#addSourceForm').bootstrapValidator('resetForm');//重置表单是重置表单验证

}

/*修改处置按钮点击事件*/
function resetupdateSource(){
    $("#updateSourceForm").find(":input").not(":button,#updatetype,#nameN,#updateParentId,#updateId,#menuLevels").val("");
    $("#updatepicker .selected-icon").empty(); //移除图标下的i元素
    $("#updateIsClick").val("");
    $('#updateSourceForm').bootstrapValidator('resetForm');//重置表单是重置表单验证
}

/*新增修改模态框关闭事件*/
/*$('#sourceTable').on('hide.bs.modal', function () {
    $("#addSourceForm").find(":input").not(":button").val("");
});*/

/*资源类型下拉框选项改变事件监听*/
function removeEl(){
    var typeVal = $("#type").val();
    if(typeVal==2){ //按钮，隐藏多余的表单
        $(".show_none").hide();
    }else{
        $(".show_none").show();
    }
}

/*新增弹出框内提交方法*/
function submitAddSource(){
    var $formlist = $('#addSourceForm');
    var data = $formlist.data('bootstrapValidator');
    if (data) {
        // 修复记忆的组件不验证
        data.validate();
        if (!data.isValid()) {
            return false;
        }
    }
    var formData = $("#addSourceForm").serialize();
    /*新增资源配置提交*/
    $.ajax({
        url:"../menu/meinsert",
        data:formData,
        type:"post",
        dataType:"json",
        success:function(data){
            if (data.code==1){
                layer.msg(data.mess, {icon: 1});
                $("#addSourceDialog").modal("hide");
                $("#addSourceForm").find(":input").not(":button").val("");
                $('#addSourceForm').bootstrapValidator('resetForm');//重置表单是重置表单验证
                refreshDetailTab();
            }else if(data.code==0){
                layer.msg(data.mess, {icon: 2});
            }
        }
    })
}

/*修改资源配置弹出框按钮点击事件*/
function UpdateSource(){
    var rows = $("#sourceTable").bootstrapTable('getSelections');
    if(rows.length<1){
        layer.alert("请选择要修改的节点！", {icon: 2});
    }else{
        $("#updateSourceDialog").modal("show");
        if(rows[0].cof==2){//按钮
            $(".updateShow_none").hide();
        }else{
            $(".updateShow_none").show();
        }
        $("#updatetype").attr("disabled","disabled");
        $("#menuLevels").attr("readonly","readonly");
        $("#nameN").attr("readonly","readonly");
        $("#updateSourceForm input[name='parentId']").val(rows[0].parentId);
        $("#updateSourceForm input[name='id']").val(rows[0].id);
        $("#updateSourceForm input[name='path']").val(rows[0].path);
        $("#updateSourceForm input[name='menuName']").val(rows[0].menuName);
        $("#updateSourceForm input[name='menuLevel']").val(rows[0].menuLevel);
        $("#updateSourceForm input[name='sequence']").val(rows[0].sequence);
        $("#updateIsClick").find("option[value='"+rows[0].isClick+"']").attr("selected",true);
        $("#updateSourceForm input[name='type']").val(rows[0].cof);
        $("#updatetype").find("option[value='"+rows[0].cof+"']").attr("selected",true);//根据值让option选中
        $("#updateSourceForm input[name='icon']").val(rows[0].icon);
        $("#updateSourceForm input[name='remark']").val(rows[0].remark);
        $("#updatepicker .selected-icon i").removeClass("fa fa-ban").addClass(rows[0].icon);
    }
}

/*修改弹出框内提交方法*/
function submitupdateSource(){
    $("#updatetype").removeAttr("disabled");
    var $formlist = $('#updateSourceForm');
    var data = $formlist.data('bootstrapValidator');
    if (data) {
        // 修复记忆的组件不验证
        data.validate();
        if (!data.isValid()) {
            return false;
        }
    }
    var formUpdateData = $("#updateSourceForm").serialize();
    /*修改资源配置提交*/
    $.ajax({
        url:"../menu/update",
        data:formUpdateData,
        type:"post",
        dataType:"json",
        success:function(data){
            if (data.code==1){
                layer.msg(data.mess, {icon: 1});
                $("#updateSourceDialog").modal("hide");
                $("#updateSourceForm").find(":input").not(":button").val("");
                $('#updateSourceForm').bootstrapValidator('resetForm');//重置表单是重置表单验证
                refreshDetailTab();
            }else if(data.code==0){
                layer.msg(data.mess, {icon: 2});
            }
        }
    })
}

/*删除按钮点击事件*/
function DeleteSource(){
    var rows = $("#sourceTable").bootstrapTable('getSelections');
    if(rows.length<1){
        layer.alert("请选择要删除的节点！", {icon: 2});
    }else{
        layer.confirm('确定要删除所选数据？', {icon: 3, title:'提示'}, function(){
            $.ajax({
                type: "POST",
                url: '../menu/delete',
                dataType:"json",
                data:{"type":rows[0].cof,"id":rows[0].id,"name":rows[0].name},
                success:function(data){
                    if(data.code==1){
                      /*  layer.closeAll('dialog');*/
                        layer.msg(data.mess, {icon: 1});
                        refreshDetailTab();
                    }else{
                        /*layer.closeAll('dialog')*/;
                        layer.msg(data.mess, {icon: 2});
                    }
                }
            })
        })
    }
}